<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<!-- Mirrored from www.wolfssl.com/wolfSSL/Docs-wolfssl-manual-18-10-wolfcrypt-api-curve25519.html by HTTrack Website Copier/3.x [XR&CO'2014], Tue, 17 Jan 2017 13:39:05 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=UTF-8" /><!-- /Added by HTTrack -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="Generator" content="iWeb 3.0.4"/>
<meta name="iWeb-Build" content="local-build-20170103"/>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/>
<meta name="viewport" content="width=770"/>
<title>wolfSSL - Docs | wolfCrypt Manual - Chapter 18.10 (Curve25519)</title>
<link rel="stylesheet" type="text/css" media="screen,print" href="Docs-wolfssl-manual-18-10-wolfcrypt-api-curve25519_files/Docs-wolfssl-manual-18-10-wolfcrypt-api-curve25519.css"/>
<!--[if lt IE 8]><link rel='stylesheet' type='text/css' media='screen,print' href='Docs-wolfssl-manual-18-10-wolfcrypt-api-curve25519_files/Docs-wolfssl-manual-18-10-wolfcrypt-api-curve25519IE.css'/><![endif]-->
<!--[if gte IE 8]><link rel='stylesheet' type='text/css' media='screen,print' href='Media/IE8.css'/><![endif]-->
<script type="text/javascript" src="Scripts/iWebSite.js"></script>
<script type="text/javascript" src="Docs-wolfssl-manual-18-10-wolfcrypt-api-curve25519_files/Docs-wolfssl-manual-18-10-wolfcrypt-api-curve25519.js"></script>
<meta name="description" content="wolfSSL - Docs | wolfCrypt Manual - Chapter 18.10 (Curve25519)"/><meta name="keywords" content="embedded ssl, ssl library, embedded security, openssl alternative, ssl api, ssl, tls, cyassl, openssl replacement, openssl api, ssl functions, small openssl, smart grid, connected home, ecc, lightweight ssl, suite b, encryption security software, ssl inspection"/><meta name="robots" content="follow,index"/> <script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','../../www.google-analytics.com/analytics.js','ga');ga('create','UA-64826966-1','auto');ga('send','pageview');</script>
 
<script>//<![CDATA[
window.zEmbed||function(e,t){var n,o,d,i,s,a=[],r=document.createElement("iframe");window.zEmbed=function(){a.push(arguments)},window.zE=window.zE||window.zEmbed,r.src="javascript:false",r.title="",r.role="presentation",(r.frameElement||r).style.cssText="display: none",d=document.getElementsByTagName("script"),d=d[d.length-1],d.parentNode.insertBefore(r,d),i=r.contentWindow,s=i.document;try{o=s}catch(c){n=document.domain,r.src='javascript:var d=document.open();d.domain="'+n+'";void(0);',o=s}o.open()._l=function(){var o=this.createElement("script");n&&(this.domain=n),o.id="js-iframe-async",o.src=e,this.t=+new Date,this.zendeskHost=t,this.zEQueue=a,this.body.appendChild(o)},o.write('<body onload="document._l();">'),o.close()}("../../assets.zendesk.com/embeddable_framework/main.js","wolfssl.zendesk.com");
//]]></script>
  </head>
<body style="background: rgb(255, 255, 255); margin: 0pt; " onload="onPageLoad();">
<div style="text-align: center; ">
<div style="margin-bottom: 20px; margin-left: auto; margin-right: auto; margin-top: 20px; overflow: hidden; position: relative; word-wrap: break-word;  background: rgb(255, 255, 255); text-align: left; width: 770px; " id="body_content">
<div style="float: left; margin-left: 0px; position: relative; width: 770px; z-index: 0; " id="nav_layer">
<div style="height: 0px; line-height: 0px; " class="bumper"> </div>
<div style="clear: both; height: 0px; line-height: 0px; " class="spacer"> </div>
</div>
<div style="float: left; height: 0px; line-height: 0px; margin-left: 0px; position: relative; width: 770px; z-index: 10; " id="header_layer">
<div style="height: 0px; line-height: 0px; " class="bumper"> </div>
</div>
<div style="margin-left: 0px; position: relative; width: 770px; z-index: 5; " id="body_layer">
<div style="height: 0px; line-height: 0px; " class="bumper"> </div>
<div id="id1" style="height: 38px; left: 375px; position: absolute; top: 157px; width: 361px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_361_38" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style">wolfSSL Manual</p>
</div>
</div>
</div>
<div id="id2" style="height: 24px; left: 193px; position: absolute; top: 122px; width: 268px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_268_24" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_1"><a class="class1" title="Docs.html" href="Docs.html">Docs</a> <span class="style">-&gt;</span> <span class="style_1">wolfSSL Manual</span></p>
</div>
</div>
</div>
<div style="height: 1px; width: 698px;  height: 1px; left: 37px; position: absolute; top: 220px; width: 698px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 698px; ">
<img src="Docs-wolfssl-manual-18-10-wolfcrypt-api-curve25519_files/shapeimage_1.jpg" alt="" style="height: 1px; left: 0px; position: absolute; top: 0px; width: 698px; "/>
</div>
</div>
<div style="height: 37px; width: 545px;  height: 37px; left: 191px; position: absolute; top: 80px; width: 545px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 545px; ">
<img src="Docs-wolfssl-manual-18-10-wolfcrypt-api-curve25519_files/shapeimage_2.png" alt="" style="height: 37px; left: 0px; position: absolute; top: 0px; width: 545px; "/>
</div>
</div>
<div id="id3" style="height: 25px; left: 200px; position: absolute; top: 84px; width: 43px; z-index: 1; " class="style_SkipStroke_1 shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_43_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_2"><a class="class2" title="Home.html" href="Home.html">Home</a></p>
</div>
</div>
</div>
<div id="id4" style="height: 25px; left: 365px; position: absolute; top: 84px; width: 72px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_72_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_3"><a class="class3" title="https://wolfssl.com/wolfSSL/download/downloadForm.php" href="https://wolfssl.com/wolfSSL/download/downloadForm.php">Download</a></p>
</div>
</div>
</div>
<div id="id5" style="height: 25px; left: 439px; position: absolute; top: 84px; width: 59px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_59_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_3"><a class="class4" title="License.html" href="License.html">License</a></p>
</div>
</div>
</div>
<div id="id6" style="height: 25px; left: 499px; position: absolute; top: 84px; width: 44px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_44_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_3"><a class="class5" title="Blog/Blog.html" href="Blog/Blog.html">Blog</a></p>
</div>
</div>
</div>
<div id="id7" style="height: 25px; left: 589px; position: absolute; top: 84px; width: 80px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_80_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_3"><a class="class6" title="Community.html" href="Community.html">Community</a></p>
</div>
</div>
</div>
<div style="height: 36px; width: 1px;  height: 36px; left: 245px; position: absolute; top: 81px; width: 0px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 0px; ">
<img src="Docs-wolfssl-manual-18-10-wolfcrypt-api-curve25519_files/shapeimage_3.png" alt="" style="height: 36px; left: 0px; position: absolute; top: 0px; width: 1px; "/>
</div>
</div>
<div style="height: 37px; width: 1px;  height: 37px; left: 296px; position: absolute; top: 80px; width: 0px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 0px; ">
<img src="Docs-wolfssl-manual-18-10-wolfcrypt-api-curve25519_files/shapeimage_4.png" alt="" style="height: 37px; left: 0px; position: absolute; top: 0px; width: 1px; "/>
</div>
</div>
<div style="height: 36px; width: 1px;  height: 36px; left: 363px; position: absolute; top: 81px; width: 0px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 0px; ">
<img src="Docs-wolfssl-manual-18-10-wolfcrypt-api-curve25519_files/shapeimage_5.png" alt="" style="height: 36px; left: 0px; position: absolute; top: 0px; width: 1px; "/>
</div>
</div>
<div style="height: 36px; width: 1px;  height: 36px; left: 438px; position: absolute; top: 81px; width: 0px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 0px; ">
<img src="Docs-wolfssl-manual-18-10-wolfcrypt-api-curve25519_files/shapeimage_6.png" alt="" style="height: 36px; left: 0px; position: absolute; top: 0px; width: 1px; "/>
</div>
</div>
<div style="height: 37px; width: 1px;  height: 37px; left: 498px; position: absolute; top: 80px; width: 0px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 0px; ">
<img src="Docs-wolfssl-manual-18-10-wolfcrypt-api-curve25519_files/shapeimage_7.png" alt="" style="height: 37px; left: 0px; position: absolute; top: 0px; width: 1px; "/>
</div>
</div>
<div style="height: 37px; width: 1px;  height: 37px; left: 589px; position: absolute; top: 80px; width: 0px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 0px; ">
<img src="Docs-wolfssl-manual-18-10-wolfcrypt-api-curve25519_files/shapeimage_8.png" alt="" style="height: 37px; left: 0px; position: absolute; top: 0px; width: 1px; "/>
</div>
</div>
<div id="id8" style="height: 25px; left: 671px; position: absolute; top: 84px; width: 61px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_61_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_3"><a class="class7" title="Contact.html" href="Contact.html">Contact</a></p>
</div>
</div>
</div>
<div id="id9" style="height: 25px; left: 249px; position: absolute; top: 84px; width: 44px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_44_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_2"><a class="class8" title="About.html" href="About.html">About</a></p>
</div>
</div>
</div>
<div style="height: 36px; width: 1px;  height: 36px; left: 670px; position: absolute; top: 81px; width: 0px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 0px; ">
<img src="Docs-wolfssl-manual-18-10-wolfcrypt-api-curve25519_files/shapeimage_9.png" alt="" style="height: 36px; left: 0px; position: absolute; top: 0px; width: 1px; "/>
</div>
</div>
<div id="id10" style="height: 25px; left: 298px; position: absolute; top: 84px; width: 63px; z-index: 1; " class="style_SkipStroke_1 shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_63_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_3"><a class="class9" title="Products.html" href="Products.html">Products</a></p>
</div>
</div>
</div>
<div id="id11" style="height: 25px; left: 549px; position: absolute; top: 84px; width: 41px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_41_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_2"><a class="class10" title="Docs.html" href="Docs.html">Docs</a></p>
</div>
</div>
</div>
<div style="height: 37px; width: 1px;  height: 37px; left: 545px; position: absolute; top: 80px; width: 0px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 0px; ">
<img src="Docs-wolfssl-manual-18-10-wolfcrypt-api-curve25519_files/shapeimage_10.png" alt="" style="height: 37px; left: 0px; position: absolute; top: 0px; width: 1px; "/>
</div>
</div>
<div id="id12" style="height: 27px; left: 634px; position: absolute; top: 224px; width: 102px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_102_27" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_4"><a class="class11" title="Docs-wolfssl-manual-18-11-wolfcrypt-api-3des.html" href="Docs-wolfssl-manual-18-11-wolfcrypt-api-3des.html">Next Chapter</a></p>
</div>
</div>
</div>
<div id="id13" style="height: 25px; left: 35px; position: absolute; top: 224px; width: 125px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_125_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_5"><a class="class12" title="Docs-wolfssl-manual-18-9-wolfcrypt-api-compression.html" href="Docs-wolfssl-manual-18-9-wolfcrypt-api-compression.html">Previous Chapter</a></p>
</div>
</div>
</div>
<div style="height: 22px; width: 22px;  height: 22px; left: 33px; position: absolute; top: 191px; width: 22px; z-index: 1; " class="tinyText style_SkipStroke_2">
<img src="Docs-wolfssl-manual-18-10-wolfcrypt-api-curve25519_files/PDF.png" alt="" style="border: none; height: 22px; width: 22px; "/>
</div>
<div id="id14" style="height: 25px; left: 323px; position: absolute; top: 224px; width: 125px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_125_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_6"><a title="Docs-wolfssl-manual-toc.html" href="Docs-wolfssl-manual-toc.html">Table of Contents</a></p>
</div>
</div>
</div>
<div id="id15" style="height: 4670px; left: 35px; position: absolute; top: 281px; width: 701px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_701_4670" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-top: 0pt; " class="paragraph_style_7">Chapter 18: wolfCrypt API Reference<br/></p>
<p class="paragraph_style_7"><br/></p>
<p class="paragraph_style_8">18.10  Curve25519<br/></p>
<p class="paragraph_style_8"><br/></p>
<p class="paragraph_style_9">The functions in this section expose Curve25519 functionality to calling applications.<span class="style_2"><br/></span></p>
<p class="paragraph_style_10"><br/></p>
<p class="paragraph_style_10"><br/></p>
<div class="paragraph paragraph_style_10"><div style="height: 1px; width: 693px;  height: 1px; left: 0px; position: relative; top: 1px; width: 693px; " class="tinyText inline-block"><div style="position: relative; width: 693px; "><img src="Docs-wolfssl-manual-18-10-wolfcrypt-api-curve25519_files/shapeimage_11.jpg" alt="" style="height: 1px; left: 0px; position: absolute; top: 0px; width: 693px; "/></div></div><br/></div>
<p class="paragraph_style_10"><br/></p>
<p class="paragraph_style_11"><br/></p>
<p class="paragraph_style_12">wc_curve25519_init<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Synopsis:<br/></p>
<p class="paragraph_style_9">#include &lt;wolfssl/wolfcrypt/curve25519.h&gt;<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_9">int wc_curve25519_init(curve25519_key* key)<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Description:<br/></p>
<p class="paragraph_style_9">This function initializes a curve25519 key. It should be called before generating a key for the structure with wc_curve25519_init and before using the key to encrypt data.<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Return Values:<br/></p>
<p class="paragraph_style_9"><span class="style_3">0</span>: Returned on successfully initializing the curve25519_key structure<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Parameters:<br/></p>
<p class="paragraph_style_9"><span class="style_3">key</span> - pointer to the curve25519_key structure to initialize<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Example:<br/></p>
<p class="paragraph_style_14">curve25519_key key;<br/></p>
<p class="paragraph_style_14">wc_curve25519_init(&amp;key); // initialize key<br/></p>
<p class="paragraph_style_14"><br/></p>
<p class="paragraph_style_14">// make key and proceed to encryption<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">See Also:<br/></p>
<p class="paragraph_style_9">wc_curve25519_make_key<br/></p>
<p class="paragraph_style_9"><br/></p>
<div class="paragraph paragraph_style_9"><div style="height: 1px; width: 693px;  height: 1px; left: 0px; position: relative; top: 1px; width: 693px; " class="tinyText inline-block"><div style="position: relative; width: 693px; "><img src="Docs-wolfssl-manual-18-10-wolfcrypt-api-curve25519_files/shapeimage_12.jpg" alt="" style="height: 1px; left: 0px; position: absolute; top: 0px; width: 693px; "/></div></div><br/></div>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_12"><br/></p>
<p class="paragraph_style_12">wc_curve25519_make_key<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Synopsis:<br/></p>
<p class="paragraph_style_9">#include &lt;wolfssl/wolfcrypt/curve25519.h&gt;<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_9">int wc_curve25519_make_key(RNG* rng, int keysize, curve25519_key* key);<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Description:<br/></p>
<p class="paragraph_style_9">This function generates a curve25519 key using the given random number generator, rng, of the size given (keysize), and stores it in the given curve25519_key structure. It should be called after the key structure has been initialized through wc_curve25519_init.<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Return Values:<br/></p>
<p class="paragraph_style_9"><span class="style_3">0</span>: Returned on successfully generating the key and and storing it in the given curve25519_key structure<br/></p>
<p class="paragraph_style_9"><span class="style_3">ECC_BAD_ARG_E</span>: Returned if rng or key evaluate to NULL, or the input keysize does not correspond to the keysize for a curve25519 key ( 32 bytes)<br/></p>
<p class="paragraph_style_9"><span class="style_3">RNG_FAILURE_E</span>: Returned if the rng internal status is not DRBG_OK or if there is in generating the next random block with rng<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Parameters:<br/></p>
<p class="paragraph_style_9"><span class="style_3">rng</span> - pointer to the RNG object used to generate the ecc key<br/></p>
<p class="paragraph_style_9"><span class="style_3">keysize</span> - size of the key to generate. Must be 32 bytes for curve25519<br/></p>
<p class="paragraph_style_9"><span class="style_3">key</span> - pointer to the curve25519_key structure in which to store the generated key<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Example:<br/></p>
<p class="paragraph_style_14">curve25519_key key;<br/></p>
<p class="paragraph_style_14">wc_curve25519_init(&amp;key); // initialize key<br/></p>
<p class="paragraph_style_14"><br/></p>
<p class="paragraph_style_14">RNG rng;<br/></p>
<p class="paragraph_style_14">wc_InitRng(&amp;rng); // initialize random number generator<br/></p>
<p class="paragraph_style_14"><br/></p>
<p class="paragraph_style_14">if( wc_curve25519_make_key(&amp;rng, 32, &amp;key) != 0) { <br/></p>
<p class="paragraph_style_14">// making 25519 key<br/></p>
<p class="paragraph_style_14">}<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">See Also:<br/></p>
<p class="paragraph_style_9">wc_curve25519_init<br/></p>
<p class="paragraph_style_9"><br/></p>
<div class="paragraph paragraph_style_9"><div style="height: 1px; width: 693px;  height: 1px; left: 0px; position: relative; top: 1px; width: 693px; " class="tinyText inline-block"><div style="position: relative; width: 693px; "><img src="Docs-wolfssl-manual-18-10-wolfcrypt-api-curve25519_files/shapeimage_13.jpg" alt="" style="height: 1px; left: 0px; position: absolute; top: 0px; width: 693px; "/></div></div><br/></div>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_12"><br/></p>
<p class="paragraph_style_12">wc_curve25519_shared_secret<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Synopsis:<br/></p>
<p class="paragraph_style_9">#include &lt;wolfssl/wolfcrypt/curve25519.h&gt;<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_9">int wc_curve25519_shared_secret(curve25519_key* private_key,<br/></p>
<p class="paragraph_style_9">                            curve25519_key* public_key,<br/></p>
<p class="paragraph_style_9">                            byte* out, word32* outlen);<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Description:<br/></p>
<p class="paragraph_style_9">This function computes a shared secret key given a secret private key and a received public key. It stores the generated secret key in the buffer out and assigns the variable of the secret key to outlen. <br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Return Values:<br/></p>
<p class="paragraph_style_9"><span class="style_3">0</span>: Returned on successfully computing a shared secret key<br/></p>
<p class="paragraph_style_9"><span class="style_3">BAD_FUNC_ARG</span>: Returned if any of the input parameters passed in are NULL<br/></p>
<p class="paragraph_style_9"><span class="style_3">ECC_BAD_ARG_E</span>: Returned if the first bit of the public key is set, to avoid implementation fingerprinting<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Parameters:<br/></p>
<p class="paragraph_style_9"><span class="style_3">private_key</span> - pointer to the curve25519_key structure initialized with the user’s private key<br/></p>
<p class="paragraph_style_9"><span class="style_3">public_key</span> - pointer to the  curve25519_key structure containing the received public key<br/></p>
<p class="paragraph_style_9"><span class="style_3">out</span> - pointer to a buffer in which to store the 32 byte computed secret key<br/></p>
<p class="paragraph_style_9"><span class="style_3">outlen</span> - pointer in which to store the length written to the output buffer<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Example:<br/></p>
<p class="paragraph_style_14">byte sharedKey[32];<br/></p>
<p class="paragraph_style_14">word32 keySz;<br/></p>
<p class="paragraph_style_14"><br/></p>
<p class="paragraph_style_14">curve25519_key privKey, pubKey;<br/></p>
<p class="paragraph_style_14">// initialize both keys<br/></p>
<p class="paragraph_style_14"><br/></p>
<p class="paragraph_style_14">if ( wc_curve25519_shared_secret(&amp;privKey, &amp;pubKey, sharedKey, &amp;keySz) != 0 ) {<br/></p>
<p class="paragraph_style_14">// error generating shared key<br/></p>
<p class="paragraph_style_14">}<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">See Also:<br/></p>
<p class="paragraph_style_9">wc_curve25519_init, wc_curve25519_make_key<br/></p>
<p class="paragraph_style_9"><br/></p>
<div class="paragraph paragraph_style_9"><div style="height: 1px; width: 693px;  height: 1px; left: 0px; position: relative; top: 1px; width: 693px; " class="tinyText inline-block"><div style="position: relative; width: 693px; "><img src="Docs-wolfssl-manual-18-10-wolfcrypt-api-curve25519_files/shapeimage_14.jpg" alt="" style="height: 1px; left: 0px; position: absolute; top: 0px; width: 693px; "/></div></div><br/></div>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_12"><br/></p>
<p class="paragraph_style_12">wc_curve25519_free<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Synopsis:<br/></p>
<p class="paragraph_style_9">#include &lt;wolfssl/wolfcrypt/curve25519.h&gt;<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_9">void wc_curve25519_free(curve25519_key* key);<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Description:<br/></p>
<p class="paragraph_style_9">This function frees a curve 25519 object. <br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Return Values:<br/></p>
<p class="paragraph_style_9">No return values for this function.<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Parameters:<br/></p>
<p class="paragraph_style_9"><span class="style_3">key</span> - pointer to the key object to free<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Example:<br/></p>
<p class="paragraph_style_14">curve25519_key privKey;<br/></p>
<p class="paragraph_style_14">// initialize key, use it to generate shared secret key<br/></p>
<p class="paragraph_style_14"><br/></p>
<p class="paragraph_style_14">wc_curve25519_free(&amp;privKey);<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">See Also:<br/></p>
<p class="paragraph_style_9">wc_curve25519_init, wc_curve25519_make_key<br/></p>
<p class="paragraph_style_9"><br/></p>
<div class="paragraph paragraph_style_9"><div style="height: 1px; width: 693px;  height: 1px; left: 0px; position: relative; top: 1px; width: 693px; " class="tinyText inline-block"><div style="position: relative; width: 693px; "><img src="Docs-wolfssl-manual-18-10-wolfcrypt-api-curve25519_files/shapeimage_15.jpg" alt="" style="height: 1px; left: 0px; position: absolute; top: 0px; width: 693px; "/></div></div><br/></div>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_12"><br/></p>
<p class="paragraph_style_12">wc_curve25519_import_private_raw<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Synopsis:<br/></p>
<p class="paragraph_style_9">#include &lt;wolfssl/wolfcrypt/curve25519.h&gt;<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_9">int wc_curve25519_import_private_raw(const byte* priv, word32 privSz,<br/></p>
<p class="paragraph_style_9">                         const byte* pub, word32 pubSz, curve25519_key* key);<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Description:<br/></p>
<p class="paragraph_style_9">This function imports a public-private key pair into a curve25519_key structure. <br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Return Values:<br/></p>
<p class="paragraph_style_9"><span class="style_3">0</span>: Returned on importing into the curve25519_key structure<br/></p>
<p class="paragraph_style_9"><span class="style_3">ECC_BAD_ARG_E</span>: Returned if any of the input parameters are NULL, or the input key’s key size does not match the public or private key sizes<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Parameters:<br/></p>
<p class="paragraph_style_9"><span class="style_3">priv</span> - pointer to a buffer containing the private key to import<br/></p>
<p class="paragraph_style_9"><span class="style_3">privSz</span> - length of the private key to import<br/></p>
<p class="paragraph_style_9"><span class="style_3">pub</span> - pointer to a buffer containing the public key to import<br/></p>
<p class="paragraph_style_9"><span class="style_3">pubSz</span> - length of the public key to import<br/></p>
<p class="paragraph_style_9"><span class="style_3">key</span> - pointer to the structure in which to store the imported keys<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Example:<br/></p>
<p class="paragraph_style_14">int ret;<br/></p>
<p class="paragraph_style_14"><br/></p>
<p class="paragraph_style_14">byte priv[32];<br/></p>
<p class="paragraph_style_14">byte pub[32];<br/></p>
<p class="paragraph_style_14">// initialize with public and private keys<br/></p>
<p class="paragraph_style_14">curve25519_key key;<br/></p>
<p class="paragraph_style_14"><br/></p>
<p class="paragraph_style_14">wc_curve25519_init(&amp;key);<br/></p>
<p class="paragraph_style_14">// initialize key <br/></p>
<p class="paragraph_style_14"><br/></p>
<p class="paragraph_style_14">ret = wc_curve25519_import_private_raw(&amp;priv, sizeof(priv), pub, sizeof(pub),&amp;key);<br/></p>
<p class="paragraph_style_14">if (ret != 0) {<br/></p>
<p class="paragraph_style_14">// error importing keys<br/></p>
<p class="paragraph_style_14">}<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">See Also:<br/></p>
<p class="paragraph_style_9">wc_curve25519_init, wc_curve25519_make_key, wc_curve25519_import_public, wc_curve25519_export_private_raw<br/></p>
<p class="paragraph_style_9"><br/></p>
<div class="paragraph paragraph_style_9"><div style="height: 1px; width: 693px;  height: 1px; left: 0px; position: relative; top: 1px; width: 693px; " class="tinyText inline-block"><div style="position: relative; width: 693px; "><img src="Docs-wolfssl-manual-18-10-wolfcrypt-api-curve25519_files/shapeimage_16.jpg" alt="" style="height: 1px; left: 0px; position: absolute; top: 0px; width: 693px; "/></div></div><br/></div>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_12"><br/></p>
<p class="paragraph_style_12">wc_curve25519_export_private_raw<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Synopsis:<br/></p>
<p class="paragraph_style_9">#include &lt;wolfssl/wolfcrypt/curve25519.h&gt;<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_9">int wc_curve25519_export_private_raw(curve25519_key* key, byte* out, word32* outLen);<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Description:<br/></p>
<p class="paragraph_style_9">This function exports a private key from a curve25519_key structure and stores it in the given out buffer. It also sets outLen to be the size of the exported key.<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Return Values:<br/></p>
<p class="paragraph_style_9"><span class="style_3">0</span>: Returned on successfully exporting the private key from the curve25519_key structure<br/></p>
<p class="paragraph_style_9"><span class="style_3">ECC_BAD_ARG_E</span>: Returned if any of the input parameters are NULL<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Parameters:<br/></p>
<p class="paragraph_style_9"><span class="style_3">key</span> - pointer to the structure from which to export the key<br/></p>
<p class="paragraph_style_9"><span class="style_3">out</span> - pointer to the buffer in which to store the exported key<br/></p>
<p class="paragraph_style_9"><span class="style_3">outLen</span> - will store the bytes written to the output buffer<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Example:<br/></p>
<p class="paragraph_style_14">int ret;<br/></p>
<p class="paragraph_style_14"><br/></p>
<p class="paragraph_style_14">byte priv[32];<br/></p>
<p class="paragraph_style_14">int privSz;<br/></p>
<p class="paragraph_style_14"><br/></p>
<p class="paragraph_style_14">curve25519_key key;<br/></p>
<p class="paragraph_style_14">// initialize and make key<br/></p>
<p class="paragraph_style_14"><br/></p>
<p class="paragraph_style_14">ret = wc_curve25519_export_private_raw(&amp;key, priv, &amp;privSz);<br/></p>
<p class="paragraph_style_14">if (ret != 0) {<br/></p>
<p class="paragraph_style_14">// error exporting key<br/></p>
<p class="paragraph_style_14">}<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">See Also:<br/></p>
<p class="paragraph_style_9">wc_curve25519_init, wc_curve25519_make_key, wc_curve25519_import_private_raw<br/></p>
<p class="paragraph_style_9"><br/></p>
<div class="paragraph paragraph_style_9"><div style="height: 1px; width: 693px;  height: 1px; left: 0px; position: relative; top: 1px; width: 693px; " class="tinyText inline-block"><div style="position: relative; width: 693px; "><img src="Docs-wolfssl-manual-18-10-wolfcrypt-api-curve25519_files/shapeimage_17.jpg" alt="" style="height: 1px; left: 0px; position: absolute; top: 0px; width: 693px; "/></div></div><br/></div>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_12"><br/></p>
<p class="paragraph_style_12">wc_curve25519_import_public<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Synopsis:<br/></p>
<p class="paragraph_style_9">#include &lt;wolfssl/wolfcrypt/curve25519.h&gt;<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_9">int wc_curve25519_import_public(const byte* in, word32 inLen, curve25519_key* key);<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Description:<br/></p>
<p class="paragraph_style_9">This function imports a public key from the given in buffer and stores it in the  curve25519_key structure. <br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Return Values:<br/></p>
<p class="paragraph_style_9"><span class="style_3">0</span>: Returned on successfully importing the public key into the curve25519_key structure<br/></p>
<p class="paragraph_style_9"><span class="style_3">ECC_BAD_ARG_E</span>: Returned if any of the input parameters are NULL, or if the inLen parameter does not match the key size of the key structure<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Parameters:<br/></p>
<p class="paragraph_style_9"><span class="style_3">in</span> - pointer to the buffer containing the public key to import<br/></p>
<p class="paragraph_style_9"><span class="style_3">inLen</span> - length of the public key to import<br/></p>
<p class="paragraph_style_9"><span class="style_3">key</span> - pointer to the curve25519_key structure in which to store the key<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Example:<br/></p>
<p class="paragraph_style_14">int ret;<br/></p>
<p class="paragraph_style_14"><br/></p>
<p class="paragraph_style_14">byte pub[32];<br/></p>
<p class="paragraph_style_14">// initialize pub with public key<br/></p>
<p class="paragraph_style_14"><br/></p>
<p class="paragraph_style_14">curve25519_key key;<br/></p>
<p class="paragraph_style_14">// initialize key<br/></p>
<p class="paragraph_style_14"><br/></p>
<p class="paragraph_style_14">ret = wc_curve25519_import_public(pub,sizeof(pub), &amp;key);<br/></p>
<p class="paragraph_style_14">if (ret != 0) {<br/></p>
<p class="paragraph_style_14">// error exporting key<br/></p>
<p class="paragraph_style_14">}<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">See Also:<br/></p>
<p class="paragraph_style_9">wc_curve25519_init, wc_curve25519_export_public, wc_curve25519_import_private_raw<br/></p>
<p class="paragraph_style_9"><br/></p>
<div class="paragraph paragraph_style_9"><div style="height: 1px; width: 693px;  height: 1px; left: 0px; position: relative; top: 1px; width: 693px; " class="tinyText inline-block"><div style="position: relative; width: 693px; "><img src="Docs-wolfssl-manual-18-10-wolfcrypt-api-curve25519_files/shapeimage_18.jpg" alt="" style="height: 1px; left: 0px; position: absolute; top: 0px; width: 693px; "/></div></div><br/></div>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_12"><br/></p>
<p class="paragraph_style_12">wc_curve25519_export_public<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Synopsis:<br/></p>
<p class="paragraph_style_9">#include &lt;wolfssl/wolfcrypt/curve25519.h&gt;<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_9">int wc_curve25519_export_public(curve25519_key* key, byte* out, word32* outLen);<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Description:<br/></p>
<p class="paragraph_style_9">This function exports a public key from the given key structure and stores the result in the out buffer. <br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Return Values:<br/></p>
<p class="paragraph_style_9"><span class="style_3">0</span>: Returned on successfully exporting the public key from the curve25519_key structure<br/></p>
<p class="paragraph_style_9"><span class="style_3">ECC_BAD_ARG_E</span>: Returned if any of the input parameters are NULL<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Parameters:<br/></p>
<p class="paragraph_style_9"><span class="style_3">key</span> - pointer to the curve25519_key structure in from which to export the key<br/></p>
<p class="paragraph_style_9"><span class="style_3">out</span> - pointer to the buffer in which to store the public key<br/></p>
<p class="paragraph_style_9"><span class="style_3">outLen</span> - will store the bytes written to the output buffer<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Example:<br/></p>
<p class="paragraph_style_14">int ret;<br/></p>
<p class="paragraph_style_14"><br/></p>
<p class="paragraph_style_14">byte pub[32];<br/></p>
<p class="paragraph_style_14">int pubSz;<br/></p>
<p class="paragraph_style_14"><br/></p>
<p class="paragraph_style_14">curve25519_key key;<br/></p>
<p class="paragraph_style_14">// initialize and make key<br/></p>
<p class="paragraph_style_14"><br/></p>
<p class="paragraph_style_14">ret = wc_curve25519_export_public(&amp;key,pub, &amp;pubSz);<br/></p>
<p class="paragraph_style_14">if (ret != 0) {<br/></p>
<p class="paragraph_style_14">// error exporting key<br/></p>
<p class="paragraph_style_14">}<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">See Also:<br/></p>
<p class="paragraph_style_9">wc_curve25519_init, wc_curve25519_export_private_raw, wc_curve25519_import_public<br/></p>
<p class="paragraph_style_9"><br/></p>
<div class="paragraph paragraph_style_9"><div style="height: 1px; width: 693px;  height: 1px; left: 0px; position: relative; top: 1px; width: 693px; " class="tinyText inline-block"><div style="position: relative; width: 693px; "><img src="Docs-wolfssl-manual-18-10-wolfcrypt-api-curve25519_files/shapeimage_19.jpg" alt="" style="height: 1px; left: 0px; position: absolute; top: 0px; width: 693px; "/></div></div><br/></div>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_12"><br/></p>
<p class="paragraph_style_12">wc_curve25519_size<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Synopsis:<br/></p>
<p class="paragraph_style_9">#include &lt;wolfssl/wolfcrypt/curve25519.h&gt;<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_9">int wc_curve25519_size(curve25519_key* key);<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Description:<br/></p>
<p class="paragraph_style_9">This function returns the key size of the given key structure. <br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Return Values:<br/></p>
<p class="paragraph_style_9">Given a valid, initialized curve25519_key structure, returns the <span class="style_3">size</span> of the key. <br/></p>
<p class="paragraph_style_9"><span class="style_3">0</span>: Returned if key is NULL<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Parameters:<br/></p>
<p class="paragraph_style_9"><span class="style_3">key</span> - pointer to the curve25519_key structure in for which to determine the key size<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">Example:<br/></p>
<p class="paragraph_style_14">curve25519_key key;<br/></p>
<p class="paragraph_style_14">// initialize and make key<br/></p>
<p class="paragraph_style_14">int keySz;<br/></p>
<p class="paragraph_style_14"><br/></p>
<p class="paragraph_style_14">keySz = wc_curve25519_size(&amp;key);<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_13">See Also:<br/></p>
<p class="paragraph_style_9">wc_curve25519_init, wc_curve25519_make_key<br/></p>
<p class="paragraph_style_9"><br/></p>
<p class="paragraph_style_10"><br/></p>
<div class="paragraph paragraph_style_10"><div style="height: 1px; width: 693px;  height: 1px; left: 0px; position: relative; top: 1px; width: 693px; " class="tinyText inline-block"><div style="position: relative; width: 693px; "><img src="Docs-wolfssl-manual-18-10-wolfcrypt-api-curve25519_files/shapeimage_20.jpg" alt="" style="height: 1px; left: 0px; position: absolute; top: 0px; width: 693px; "/></div></div><br/></div>
</div>
<div style="clear: both; height: 0px; line-height: 0px; " class="tinyText"> </div>
</div>
</div>
<div style="height: 16px; width: 20px;  height: 16px; left: 706px; position: absolute; top: 51px; width: 20px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 20px; ">
<img src="Docs-wolfssl-manual-18-10-wolfcrypt-api-curve25519_files/shapeimage_21.png" alt="" style="height: 16px; left: 0px; position: absolute; top: 0px; width: 20px; "/>
</div>
</div>
<div style="height: 19px; width: 19px;  height: 19px; left: 707px; position: absolute; top: 25px; width: 19px; z-index: 1; " class="tinyText style_SkipStroke_2">
<img src="Docs-wolfssl-manual-18-10-wolfcrypt-api-curve25519_files/United%20Kingdom(Great%20Britain).png" alt="" style="border: none; height: 19px; width: 19px; "/>
</div>
<div id="id16" style="height: 23px; left: 328px; position: absolute; top: 48px; width: 258px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_258_23" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_15">Questions? +1 (425) 245-8247</p>
</div>
</div>
</div>
<div style="height: 19px; width: 19px;  height: 19px; left: 685px; position: absolute; top: 25px; width: 19px; z-index: 1; " class="tinyText style_SkipStroke_2">
<a href="http://www.wolfssl.jp/" title="http://www.wolfssl.jp"><img src="Docs-wolfssl-manual-18-10-wolfcrypt-api-curve25519_files/japan.png" alt="" style="border: none; height: 19px; width: 19px; "/></a>
</div>
<div id="id17" style="height: 28px; left: 593px; position: absolute; top: 44px; width: 119px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_119_28" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_16"><a class="class13" title="https://www.wolfssl.com/forums" href="https://www.wolfssl.com/forums">Support <span class="style_4">Forums</span></a></p>
</div>
</div>
</div>
<div id="id18" style="height: 27px; left: 59px; position: absolute; top: 190px; width: 342px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_342_27" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_17"><a class="class14" title="https://www.wolfssl.com/documentation/wolfSSL-Manual.pdf" href="https://www.wolfssl.com/documentation/wolfSSL-Manual.pdf">Download wolfSSL Manual (PDF)</a></p>
</div>
</div>
</div>
<div style="height: 121px; width: 155px;  height: 121px; left: 32px; position: absolute; top: 5px; width: 155px; z-index: 1; " class="tinyText style_SkipStroke_2">
<a href="Home.html" title="Home.html"><img src="Docs-wolfssl-manual-18-10-wolfcrypt-api-curve25519_files/wolfssl_logo.png" alt="" style="border: none; height: 121px; width: 156px; "/></a>
</div>
<div style="height: 4951px; line-height: 4951px; " class="spacer"> </div>
</div>
<div style="height: 114px; margin-left: 0px; position: relative; width: 770px; z-index: 15; " id="footer_layer">
<div style="height: 0px; line-height: 0px; " class="bumper"> </div>
<div id="id19" style="height: 27px; left: 634px; position: absolute; top: 47px; width: 102px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_102_27" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_4"><a class="class15" title="Docs-wolfssl-manual-18-11-wolfcrypt-api-3des.html" href="Docs-wolfssl-manual-18-11-wolfcrypt-api-3des.html">Next Chapter</a></p>
</div>
</div>
</div>
<div id="id20" style="height: 25px; left: 35px; position: absolute; top: 47px; width: 125px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_125_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_18"><a class="class16" title="Docs-wolfssl-manual-18-9-wolfcrypt-api-compression.html" href="Docs-wolfssl-manual-18-9-wolfcrypt-api-compression.html">Previous Chapter</a></p>
</div>
</div>
</div>
<div id="id21" style="height: 25px; left: 323px; position: absolute; top: 47px; width: 125px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_125_25" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_6"><a class="class17" title="Docs-wolfssl-manual-toc.html" href="Docs-wolfssl-manual-toc.html">Table of Contents</a></p>
</div>
</div>
</div>
<div id="id22" style="height: 29px; left: 35px; position: absolute; top: 85px; width: 701px; z-index: 1; " class="style_SkipStroke shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_701_29" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-bottom: 0pt; padding-top: 0pt; " class="paragraph_style_19">Copyright 2017 wolfSSL Inc.  All rights reserved.</p>
</div>
</div>
</div>
</div>
</div>
</div>
 </body>

<!-- Mirrored from www.wolfssl.com/wolfSSL/Docs-wolfssl-manual-18-10-wolfcrypt-api-curve25519.html by HTTrack Website Copier/3.x [XR&CO'2014], Tue, 17 Jan 2017 13:39:17 GMT -->
</html>
